package jym.tan.tmdb.bean;

import java.io.Serializable;
import java.util.List;

import com.google.gson.annotations.SerializedName;

/**
 * The Class PersonInfo.
 * <p>
 * 	The properties are:
 * 	<ul>
 * 		<li>id</li>
 * 		<li>name</li>
 * 		<li>profile_path</li>
 * 		<li>adult</li>
 * 		<li>also_known_as</li>
 * 		<li>biography</li>
 * 		<li>birthday</li>
 * 		<li>deathday</li>
 * 		<li>homepage</li>
 * 		<li>place_of_birth</li>
 * 	</ul>
 * </p>	
 * @author Tanmoy
 */
public class PersonInfo extends Person implements Serializable {

	private static final long serialVersionUID = 5621128706418112369L;

	@SerializedName("adult")
	private boolean adult;
	
	@SerializedName("also_known_as")
	private List<String> alsoKnownAs;
	
	@SerializedName("biography")
	private String biography;
	
	@SerializedName("birthday")
	private String birthday;
	
	@SerializedName("deathday")
	private String deathday;
	
	@SerializedName("homepage")
	private String homepage;
	
	@SerializedName("place_of_birth")
	private String placeOfBirth;
	
	/**
	 * Default Constructor.
	 */
	public PersonInfo() {
		
	}

	/**
	 * Checks if is adult.
	 *
	 * @return 
	 * 		true, if is adult
	 */
	public boolean isAdult() {
		return adult;
	}

	/**
	 * Sets the adult.
	 *
	 * @param adult 
	 * 		The new adult
	 */
	public void setAdult(boolean adult) {
		this.adult = adult;
	}

	/**
	 * Gets the also known as.
	 *
	 * @return 
	 * 		The also known as
	 */
	public List<String> getAlsoKnownAs() {
		return alsoKnownAs;
	}

	/**
	 * Sets the also known as.
	 *
	 * @param alsoKnownAs 
	 * 		The new also known as
	 */
	public void setAlsoKnownAs(List<String> alsoKnownAs) {
		this.alsoKnownAs = alsoKnownAs;
	}

	/**
	 * Gets the biography.
	 *
	 * @return 
	 * 		The biography
	 */
	public String getBiography() {
		return biography;
	}

	/**
	 * Sets the biography.
	 *
	 * @param biography 
	 * 		The new biography
	 */
	public void setBiography(String biography) {
		this.biography = biography;
	}

	/**
	 * Gets the birthday.
	 *
	 * @return 
	 * 		The birthday
	 */
	public String getBirthday() {
		return birthday;
	}

	/**
	 * Sets the birthday.
	 *
	 * @param birthday 
	 * 		The new birthday
	 */
	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}

	/**
	 * Gets the deathday.
	 *
	 * @return 
	 * 		The deathday
	 */
	public String getDeathday() {
		return deathday;
	}

	/**
	 * Sets the deathday.
	 *
	 * @param deathday 
	 * 		The new deathday
	 */
	public void setDeathday(String deathday) {
		this.deathday = deathday;
	}

	/**
	 * Gets the homepage.
	 *
	 * @return 
	 * 		The homepage
	 */
	public String getHomepage() {
		return homepage;
	}

	/**
	 * Sets the homepage.
	 *
	 * @param homepage 
	 * 		The new homepage
	 */
	public void setHomepage(String homepage) {
		this.homepage = homepage;
	}

	/**
	 * Gets the place of birth.
	 *
	 * @return 	
	 * 		The place of birth
	 */
	public String getPlaceOfBirth() {
		return placeOfBirth;
	}

	/**
	 * Sets the place of birth.
	 *
	 * @param placeOfBirth 
	 * 		The new place of birth
	 */
	public void setPlaceOfBirth(String placeOfBirth) {
		this.placeOfBirth = placeOfBirth;
	}
	
	/* (non-Javadoc)
	 * @see jym.tan.tmdb.bean.Person#toString()
	 */
	@Override
	public String toString() {		
		StringBuilder builder = new StringBuilder();
		builder.append("{").
			append("id:").append(id).
			append(",").
			append("name:").append("\"").append(name).append("\"").
			append(",").
			append("also_known_as:").append(alsoKnownAs).
			append(",").
			append("adult:").append(adult).
			append(",").
			append("profile_path:").append("\"").append(profilePath).append("\"").
			append(",").
			append("birthday:").append("\"").append(birthday).append("\"").
			append(",").
			append("deathday:").append("\"").append(deathday).append("\"").
			append(",").
			append("place_of_birth:").append("\"").append(placeOfBirth).append("\"").
			append(",").
			append("biography:").append("\"").append(biography).append("\"").
			append(",").
			append("homepage:").append("\"").append(homepage).append("\"").
			append("}");
		return builder.toString();
	}
}
